#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@file start.py
@brief 统一启动程序
@details 启动API服务器，提供Web界面和REST API
@author zhang33
@date 2025-09-05
"""

import sys
import argparse

# 添加项目根目录到Python路径
sys.path.insert(0, '.')

from core.logging_config import setup_logging, get_logger

# 设置日志系统
setup_logging()
logger = get_logger(__name__)


def main():
    """
    @brief 主函数
    """
    parser = argparse.ArgumentParser(description='无刷电机驱动器控制器')
    parser.add_argument('--host', default='0.0.0.0', 
                       help='API服务器地址 (默认: 0.0.0.0)')
    parser.add_argument('--port', type=int, default=5000, 
                       help='API服务器端口 (默认: 5000)')
    parser.add_argument('--config', default='config/serial_config.json',
                       help='配置文件路径 (默认: config/serial_config.json)')
    parser.add_argument('--debug', action='store_true',
                       help='开启调试模式')
    
    args = parser.parse_args()
    
    try:
        logger.info(f"启动电机控制器API服务器 - 地址: {args.host}:{args.port}")
        
        # 启动API服务器模式
        from api.rest_api import MotorRESTAPI
        api_server = MotorRESTAPI(
            config_file=args.config,
            host=args.host,
            port=args.port
        )
        api_server.run(debug=args.debug)
            
    except KeyboardInterrupt:
        logger.info("用户中断程序")
    except Exception as e:
        logger.error(f"程序异常: {e}")
    finally:
        logger.info("电机控制器程序结束")


if __name__ == "__main__":
    main()
